#pragma once
#include "NodoD.h"

class ListaD
{
private :
	NodoD* cabeza;

public:
	ListaD(void);
	~ListaD(void);

	void setCabeza(NodoD*);
	
	NodoD* getCabeza();

	bool estaVacia();
	
	void insertarInicio(DataPack*);

	void insertarEnPosicion(int, DataPack*); //supone 1<=posicion <=largoLista+1

	int largoLista();

	char* muestraLista();

	void shellSortTiempo();

	void shellSortPeso();

	void generaDatos(int);

	// v 23 set

	NodoD* localiza(int);	//supone 1<=posicion<=cantidad

	void eliminar(int);		//supone 1<=posicion<=cantidad

	void invertir();    
	// invierte la lista sin usar una lista adicional ni 
	// intercambiando contenidos,ni crear y borrar NodoDs.
	// Solo movimientos de punteros.

};


